package list
//创建list
List list=[1,2,3,4,5,6]
println list[0]
println list[-1] //从右边开始遍历
sublist = list[2..5] //连续获取值,返回一个原来数据副本的实例
println sublist
//改变不会影响原来数据
sublist[0]=66
println list
println list.getClass().name  //java.util.ArrayList
//迭代与反向迭代
list.each {println it}
list.reverseEach {println it}
//带key迭代
list.eachWithIndex { entry, key->
    println "$entry , $key"
}
//将集合元素*2放入一个新集合
copy=[]
list.each {copy << it*2}
//collect方法会返回一个新的集合,作用与上面相同
list1 = list.collect { it * 2 }
println list1
//查找
println list1.find {it>4} //找到第一个就返回 6
println list1.findAll {it>4} //找所有匹配的结果 [6, 8, 10, 12]
//inject: 将每次闭包结果赋值给result,可以指定初始值(seed),也可不指定
def inject = list1.inject(0) { result, element -> result += element }
println inject  //计算集合中所有元素和
//将集合中元素用-连接
println list1.join('-') //2-4-6-8-10-12
//集合中加减元素
list1 << 888  //操作原来集合
println list1+[9527]  //+-:返回新结果,对原来集合没影响
println list1-[8]
//使用集合传递参数
def need(a,b,c,d,e,f){
    println "$a,$b,$c,$d,$e,$f"
}
need(*list)  //使用* 可以将list拆分成单个参数,个数必须与方法需要的一致